\documentclass{minimal}
\usepackage{tikz,calc,fancyhdr}
\usetikzlibrary{positioning,shapes.geometric}

\usepackage{amsmath,amssymb}
\input{macros-165}
\begin{document}
	
	
	

	
	
  \begin{tikzpicture}[%
    ->,
    shorten >=2pt,
    >=stealth,
    node distance=1cm,
    noname/.style={%
      ellipse,
      minimum width=5em,
      minimum height=3em,
      draw
    }
  ]
    \node[noname] (1)                                             {Input num};
    \node[noname] (2) [below=of 1]                                {While loop(keep asking for valid input)};
    \node[noname] (7) [node distance=1cm and 3mm,below = of 2] {Call findOdd(num)};
    \node[noname] (3) [node distance=1cm and 20mm,below left=of 2] {Call findZero(num)};
    \node[noname] (4) [node distance=1cm and 20mm,below right=of 2] {Call findEven(num)};
	\node[noname] (5) [node distance=3cm and 3mm,below = of 2] {Call Println(args)};
	
    \path (1) edge                   node {} (2);
    \path (2) edge				 node {} (3);
    \path (2) edge				 node {} (4);
    \path (2) edge [bend right=20pt] node {} (1);
    \path (3) edge 				node {} (5);
	\path (4) edge 				node {} (5);
	\path (2) edge 				node {} (7);
  	\path (7) edge 				node {} (5);
	
  \end{tikzpicture}
  \\
  We use the builtin scanner class to ask for input.\\\\
  Then the while loop continuously asks for input until a valid input is given, i.e.( len(str(num)) $ < 5 $).\\\\
  If len(str(num)) $>= 5$, then we call each function with num as the argument.\\\\
  When called, findZero(num), findOdd(num), findEven(num), output the count.
  
\end{document}